╘HIS GAME LETS YOU TO UNSCRAMBLE SCRAMBLED WORDS. ╔T WON'T MAKE THE BEST-GAMES LIST, BUT IT WILL PERMIT YOU TO THINK ABOUT WHAT GOES INTO EVEN THE SIMPLEST GAME IN TERMS OF ITS CONTENT, USER FRIENDLINESS (OR LACK THEREOF) AND ITS LOGIC. ╫HILE THIS GAME IS NOW PLAYABLE, IT IS ALSO A BUILDING BLOCK TO A MORE ELABORATE DESIGN. ┘OU'LL SEE SUGGESTIONS FOR IMPROVEMENTS.
╘HE GAME ILLUSTRATES SIMPLE ANIMATION USING THE ╨╥╔╬╘ AND ├╚┴╥ COMMANDS, AND SHOWS HOW TO INTERACT WITH THE PERSON PLAYING THE GAME.
╘HE TITLE OF THE PROGRAM IS ├╥┼┴╘╒╥┼. ╘HAT'S BECAUSE YOU USE THE CREATURE TO PICK THE LETTERS TO MAKE A WORD.
// PIC: CREAT //
// PRG: CREATURE //
Ç*FP19
*** ╓┴╥╔┴┬╠┼╙ ***
═1$,═2$ CREATURE
╚,╫ CREATURE'S HEIGHT,WIDTH
DEFINED BUT NOT USED
├,╥ COLUMN,ROW WHERE CREATURE GOES
╨├ REMEMBER PREVIOUS COLUMN
╠├,╥├ LEFT,RIGHT LIMITS OF CREATURE'S
MOTIONS
─ DISTANCE FROM CREATURE TO WORD
╫$() WORDS
╘$ ONE WORD AT A TIME
╓$ SCRAMBLED WORD
├$ ONE LETTER
┴$ COLLECTS ANSWER TO MATCH ╘$
╠╬ NUMBER OF LETTERS IN WORD
╥% RANDOM LETTERS
╚$ KEEPS TRACK OF WHICH LETTERS ARE MOVED
╔$ KEYBOARD INPUT
┴╓ SAME THING, ┴╙├╔╔ VALUE
╠╓ WILL TEST LEFT/RIGHT CURSORS
*** ╔╬╙╘╥╒├╘╔╧╬╙ ***
╘HE GRAPHIC CHARACTERS NEEDED ARE CLEAR-SCREEN IN LINE 400 AND SOME CHARACTERS FOR THE LOVELY CREATURE. ╘HEY ARE SPELLED OUT IN THE FIRST TWO LINES OF THE PROGRAM. ├┬═ IS ABBREVIATION FOR THE ├OMMODORE-LOGO KEY. ╔T REALLY MAKES NO DIFFERENCE WHAT YOU PUT THERE SO LONG AS THE CREATURE IS NOT WIDER THAN 5 CHARACTERS AND NOT TALLER THAN TWO, AND SO LONG AS THE CREATURE HAS SPACES ON ITS SIDES IN ADDITION TO ITS 5-CHARACTER WIDTH.
╘HE CREATURE IS MOVED BY THE LEFT AND RIGHT CURSOR KEYS. ╘O PICK A LETTER PRESS THE "1" KEY. (╘HE EXCLAMATION POINT CAN REMIND YOU OF THE UPWARD SHOOTING). ╫HEN "1" IS PRESSED A GENUINE ARROW SHOOTS OUT FROM THE CREATURE'S HEAD. ╔T IS A HEAD, YOU'VE GOT TO BELIEVE IT.
╘HE ARROW DELIVERS THE LETTER TO THE NEXT AVAILABLE POSITION IN THE WORD YOU ARE CREATING ON TOP OF THE SCREEN. ╘O GIVE UP ON A WORD PRESS ╟. ╘O QUIT ALTOGETHER, PRESS ╤.
╘HE LIST OF WORDS IS IN THE ─┴╘┴ LINES. ╔T CAN BE CHANGED OR EXPANDED BY WHATEVER WORDS YOU WISH TO USE. ╔T SHOULD ALSO BE SOMEHOW SCRAMBLED UP, IF YOU DON'T WANT ANYONE TO KNOW YOUR LIST OF WORDS.
╘HE CHOICE OF WORDS IS A MATTER TO THINK ABOUT. ╘HERE IS ONE WORD IN MY LIST WHICH IS QUITE ANNOYING - ANOTHER WORD CAN BE MADE FROM IT, YET THE COMPUTER CONSIDERS ANY WORD OTHER THAN THE ONE ON THE LIST AS BEING WRONG. ┘OU CAN TRY EXPLAINING TO THE COMPUTER THAT YOU HAVE JUST BUILT A VALID ┼NGLISH WORD, BUT ╔ HAVEN'T HAD MUCH LUCK DOING THAT. ├OMPUTERS ARE STUBBORN AND FAIRLY STUPID. ╔F YOU SPOT THAT BAD WORD, TAKE IT OUT!
*** ├╧─╔╬╟ ─┼╘┴╔╠╙ ***
╘HE WORDS ARE COLLECTED FROM THE ─┴╘┴ LINES INTO AN ARRAY ╫$(*) IN LINES 140-150. ╥ANDOMLY, THE WORDS ARE TAKEN, ONE BY ONE, FROM THE LIST, SEE LINE 170. ╘HE LETTERS IN THE WORD ARE SCRAMBLED INTO A RANDOM ORDER BY THE CODE IN LINES 180-200. ╫E MAKE SURE EACH LETTER IS PICKED ONLY ONCE. ╠INE 190 TAKES CARE OR THIS: WHEN A LETTER IS PICKED AN ASTERISK IS PUT IN A CHARACTER STRING ╚$ TO INDICATE THAT THIS LETTER IS NO LONGER AVAILABLE. ╠ETTERS ARE COLLECTED IN ╓$. ╫HEN ALL CHARACTERS HAVE BEEN DONE, ╓$ IS THE PATTERN DELIVERED FOR UNSCRAMBLING.
╘HE INTERACTION WITH THE USER IS CODED IN LINES 220-290. ╠INE 210 PLACES THE TWO LINES OF THE CREATURE ON THE SCREEN. ╙UBSEQUENT LINES CHECK THE KEYBOARD. ╘HE CURSOR KEYS (┴╙├╔╔ 29 AND 29+128) MOVE THE CREATURE BY INCREASING OR DECREASING ITS PRINTING COLUMN POSITION. ╠╓ CONTROLS WHAT WE DO. ╘HE CREATURE HAS BUILT IN WIPERS IN IT: AS IT MOVES IT WIPES ITS OLD IMAGE OFF THE SCREEN.
╔NCIDENTALLY, THIS IS ONE OF MANY GOOD WAYS TO DESIGN AN OBJECT FOR MOVING: NOTE LINES 110-120. ╘HE SPACES ON EACH END ARE THE "WIPERS". ╘HE PENALTY IS THAT YOU CANNOT USE THE FIRST AND THE LAST COLUMNS OF THE SCREEN. ╬O PROBLEM FOR US, NOT ONE WORD REACHES 37 LETTERS.
╔F THE PLAYER PUSHES KEY NUMBER 1, (┴╙├╔╔ 49) A SEPARATE ROUTINE HANDLES THE ARROW SHOOTING. ╔T IS IN LINES 330-340 WHERE THE SHOT IS EXECUTED, LITERALLY, BY PRINTING AN ARROW AND WIPING IT OFF AND SO ON UPWARDS. ╘HERE IS MORE TO DO, THE LETTER HAS TO BE DELIVERED TO THE TOP OF THE SCREEN. ╘HAT IS CODED IN LINE 360. ╫E ACTUALLY FAKE THE DELIVERY: AN ENTIRE SECTION OF THE WORD THAT HAS BEEN SOLVED IS REPRINTED IN LINES 360-370. ╫E'RE DONE IF THE WORD MATCHES OR WE HAVE MOVED ALL ITS LETTERS. ╔F DONE, WE SET A FLAG ╧╦ TO TRUE. ╔F WE RAN OUT OF LETTERS, FLAG ┼╬ IS SET. ╫E PRINT THE RESULTS AND RETURN TO THE MAIN LOOP.
╚ERE, IF THE END HAS BEEN REACHED, WE EXIT THE 230-290 LOOP AND GO BACK TO THE BEGINNING FOR MORE WORDS. ╔F ╟ IS PRESSED (┴╙├╔╔ 71) IT MEANS THE USER IS GIVING UP ON THE WORD, WE LOOP BACK FOR MORE WORDS. ╔F ╤ (┴╙├╔╔ 81) IS PRESSED, WE QUIT.
╘HE STARTING POINT FOR ALL WORDS IS LINE 160 WHERE WE REPRINT THE SCREEN AND CONTINUE PLAYING WITH THE SAME OLD LIST, COUNTING ON THE COMPUTER TO SCRAMBLE DIFFERENTLY THIS TIME.
*** ╨╥╧╩┼├╘╙ ***
┘OU CAN MAKE MANY IMPROVEMENTS TO THIS PROGRAM. ╚OW ABOUT KEEPING A SCORE? ╔F YOU DO, YOU HAVE TO TREAT ╟ (GIVE UP) FAIRLY. ┘OU COULD FORCE A TIME LIMIT. ╚ERE, AGAIN, ╟ COMPLICATES MATTERS. ┘OU CAN DECIDE ON YOUR OWN STRATEGY, BUT IT HAS TO BE LOGICAL AND FIT THE WHOLE SCHEME OF SCORE-KEEPING.
╫HAT ABOUT CHECKING AND REJECTING A WORD AS SOON AS A CHOSEN LETTER IS OUT OF PLACE? ╚OW ABOUT PERMITTING TO CHANGE YOUR MIND? ┴GAIN, DECIDE HOW IT WILL REFLECT ON THE SCORE AND TIMEKEEPING. ╠ACK OF THESE FEATURES, CURRENTLY, CAN WELL BE CONSIDERED LIMITATIONS OF THE PROGRAM AND OUGHT TO BE ADDRESSED TO IMPROVE IT BEYOND ITS RATHER BARE-BONES CURRENT PERFORMANCE.
╙OME ARTISTIC ELABORATIONS ARE IN PLACE: YOU COULD ADD SOUND TO THE SHOOTING ARROW. ╙OUND COULD BE ADDED AS A FEEDBACK TO THE USER IF THEY PRESS A WRONG KEY. ┘OU COULD DRESS UP THE SCREEN INTO A VERY NICE DISPLAY. ╘HE LETTER-COLLECTION SECTION COULD STAND SOME WORK, IT LOOKS UNNEAT THERE IN THE CORNER. ┬OTH WORDS SHOULD BE CENTERED. ├AREFUL HERE, ├ IS WHAT CONTROLS THE CREATURE'S POSITION AS WELL AS THE LETTER-HITS. ─ON'T LET THEM GET UNSYNCHRONIZED!
┘OU CAN CERTAINLY ADD LOTS OF COLOR. ╔N FACT, THE CREATOR OF THE CREATURE AND ALL ITS MOVEMENTS TELLS ME IT MUST BE BLUE. ╠IGHT BLUE, IN FACT. ╞EATURES OF THIS NATURE ARE OMITTED ON PURPOSE - IT WILL SAVE YOU TYPING AND GIVE YOU A CHANCE TO PLAY WITH REFINEMENTS ON A PROGRAM THAT HAS BEEN DEBUGGED AS FAR AS ITS MAIN LOGIC IS CONCERNED.